Field
The described embodiments relate to handling resources in computing devices. More specifically, the described embodiments relate to selecting a resource from a set of resources for performing an operation in a computing device.
Related Art
Many modern computing devices include subsystems with multiple resources for performing corresponding operations. For example, these computing devices can include multiple processor cores (resources) for executing threads (an operation), multiple banks in a cache that can be used for storing cache blocks, mass-storage devices such as disks and semiconductor memories for storing data, etc. In some cases, these resources can become unavailable during operation of the computing device. For example, one or more of the banks in the cache, processor cores, and/or network interfaces can be powered-down to conserve power. Existing techniques for selecting resources for performing operations in the computing device after one or more resources have become unavailable and/or available are complex and/or can lead to poorly balanced resource usage.